The image processing procedures of transform image coding is employed in various applications, including the electronic conversion of photographic images, the reproduction of graphical information in a printing operation, and the transmittal of digital image data by means of electronic communication systems. In such applications, the coding is performed upon an original source image which has been provided as a series of electrical image signals, where each signal corresponds to the characteristic of an element, or pixel, of the original source image. The electrical image signals are converted into a two-dimensional set of numerical values representing the source image pixels. A separate set of numerical values is provided for each color band used. For example, in a `yuv` configuration three sets are provided, and the u- and v-sets are downsampled, as is well-known in the art, before further processing is performed.
These numerical values are commonly configured into a two-dimensional H.times.V array of image data terms. Each term in the image data array thus corresponds to a particular pixel in the original source image and quantitatively describes a feature characteristic of the pixel. In a standard display format, for example, the digital source image comprises an image data array of 640 columns and 480 rows of numerical values. Transform image coding generates a new set of H.times.V processed numerical values, commonly denoted as reconstructed image data terms, which have been computationally derived from the digital source image. The processed numerical values are converted into a new series of electrical signals from which a processed digital image can be generated.
Transform image coding procedures makes use of orthogonal transforms, such as the discrete cosine transform (DCT), to convert image data terms into frequency coefficient terms and thus simplify subsequent processing computations. Cosine transform image coding, for example, is an image processing procedure in which the digital source image terms are subjected to a two-dimensional forward discrete cosine transform (FDCT), the results divided by terms from a quantization table, and are entropy encoded by a process such as Huffman encoding. The encoded data is then stored or transmitted, usually much more efficiently than if the original image data terms had been used. The encoded data is subsequently decoded, multiplied by the quantization terms, and converted into reconstructed image data terms by the application of an inverse cosine transform (IDCT). A processed digital image is subsequently obtained from the reconstructed image data terms.
The orthogonal transforms applied in the process of transform image coding are commonly the FDCT and the IDCT. These transforms are applied in accordance with an industrial standard established by the Joint Photographic Experts Group (JPEG). The ISO Draft International Standard 10918-1 for JPEG is described in Appendix A of the reference text, "JPEG Still Image Data Compression Standard," by William B. Permebaker and Joan L. Mitchell. In accordance with the JPEG standard, a digitized source image is provided as a series of image-data matrices, usually formatted as 8.times.8 matrices, and the FDCT is applied to produce a series of frequency-coefficient matrices.
Conversion of an image-data matrix into a frequency-coefficient matrix by means of the two-dimensional FDCT can be expressed in shorthand matrix notation as, EQU S(.upsilon.,.mu.)=C.times.s(j,i).times.C.sup.T
where, S(.upsilon.,.mu.) are terms in the frequency coefficient matrix, s(j,i) are terms in the image-data matrix, C is the discrete cosine transform basis matrix, and C.sup.T is the transpose of C. The two-dimensional FDCT, as applied to 8.times.8 image-data matrices, is given by the equation, ##EQU1## where ##EQU2## for k=0 and C.sub.k =1 for k&gt;0. The frequency coefficient terms are, typically, divided by the quantization terms and the resulting quotients rounded, before transmittal or storage. The difference between the quotients as computed and the quotients as rounded is a source of computational error induced by the rounding operation. This results in image data compression noise which produces blocking artifacts at moderate to high compression levels.
Reconstructed image data terms are obtained by means of a two-dimensional IDCT operation, which can be expressed in shorthand matrix notation as, EQU r(j,i)=C.sup.T .times.R(.upsilon.,.mu.).times.C
where r(j,i) are reconstructed image data terms and R(.upsilon.,.mu.) are dequantized frequency coefficient terms. The corresponding two-dimensional IDCT, as applied to 8.times.8 frequency coefficient matrices, is given by the equation, ##EQU3##
Various methods of addressing the problem of blocking artifacts have been described in the relevant art. U.S. Pat. No. 4,754,492, issued to H. Malvar, discloses a method and apparatus for processing n-dimensional digitized signals containing at least two adjacent blocks of digitized sample values. The apparatus taught by the reference comprises a composite spatial operator utilizing basis functions similar to conventional DCT/IDCT basis functions, but which are characterized by slight extensions into the neighboring blocks in the input signal.
U.S. Pat. No. 5,220,616, issued to Downing et al., discloses a method of digitally processing images in which an image is compressed by dividing the corresponding image array into blocks which are subsequently transformed. Boundary discontinuities are smoothed by sequentially scanning image data elements at the boundaries with a one-dimensional operator matrix.
U.S. Pat. No. 5,357,584, issued to Yamaoka discloses an apparatus for compressing and expanding an image comprising an evaluation circuit for evaluating a predetermined compression factor and providing an optimum compression factor by comparing blocks of original image data with processed image data. The reference evaluation circuit comprises means for performing this comparison in each image data block, pixel by pixel, to provide block noise data.
In U.S. Pat. No. 5,367,385, issued to Yuan, there is disclosed a method and apparatus for processing block coded image data where pixel modification is performed by means of low pass filtering to reduce the difference in values between selected `local` pixels near the borders of reconstructed pixel blocks and `external` pixels near the block borders but in adjacent blocks.
A method and apparatus for removing blocking artifacts in which a blocking artifact measurer is included in the encoder unit is disclosed in U.S. Pat. No. 5,384,849, issued to Jeong. The blocking artifact measurer receives delayed original frame data and generates a frame data error corresponding to the difference between the original frame data and the received restored frame data.
There appears to be no transform image coding process disclosed in the prior art in which the reduction or elimination of blocking artifacts is accomplished by the modification of received frequency components. It is therefore an object of the present invention to provide an apparatus for performing image coding using a method that reduces blocking artifacts by filtering received frequency coefficients to compensate for the effects of quantization error.
It is a further object of the present invention to provide such a method and apparatus which can be used to reduce blocking artifacts in received JPEG-compliant image data files.